package com.java1234.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class GeoTypeConverter {

    // BigDecimal转double（安全方法）
    public static double toDouble(BigDecimal decimal) {
        return decimal.setScale(8, RoundingMode.HALF_UP).doubleValue();
    }

    // double转BigDecimal（安全方法）
    public static BigDecimal toBigDecimal(double value) {
        return BigDecimal.valueOf(value).setScale(8, RoundingMode.HALF_UP);
    }

    // 距离计算（BigDecimal入参版）
    public static BigDecimal calculateDistance(
            BigDecimal lng1, BigDecimal lat1,
            BigDecimal lng2, BigDecimal lat2
    ) {
        double distance = GeoUtils.getDistance(
                toDouble(lng1),
                toDouble(lat1),
                toDouble(lng2),
                toDouble(lat2)
        );
        return toBigDecimal(distance);
    }
}